home *** CD-ROM | disk | FTP | other *** search
/ Aminet 35 / Aminet 35 (2000)(Schatztruhe)[!][Feb 2000].iso / Aminet / dev / src / stefanb_src.lha / Private_Projects / FAX / serio.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-09-06  |  2.7 KB  |  68 lines

  1. /*
  2.  * serio.h  V0.00
  3.  *
  4.  * Include file for "serial.device" utility routines
  5.  *
  6.  * (c) 1992 Stefan Becker
  7.  *
  8.  */
  9.  
  10. /* Include files */
  11. #include <exec/memory.h>
  12. #include <devices/serial.h>
  13. #include <devices/timer.h>
  14. #include <utility/tagitem.h>
  15. #include <clib/exec_protos.h>
  16. #include <clib/utility_protos.h>
  17.  
  18. /* data structure for a serial stream */
  19. /* ss_Status and ss_Unread are only valid after QuerySerial()! */
  20. struct SerialStream
  21. {
  22.  struct MsgPort     *ss_RPort;  /* I/O request reply port *PRIVATE*   */
  23.  ULONG               ss_Mask;   /* Reply port signal bit  *READ ONLY* */
  24.  struct IOExtSer    *ss_Cmd;    /* I/O Command request    *PRIVATE*   */
  25.  struct IOExtSer    *ss_Read;   /* I/O Read request       *PRIVATE*   */
  26.  struct IOExtSer    *ss_Write;  /* I/O Write request      *PRIVATE*   */
  27.  ULONG               ss_Baud;   /* bps rate               *READ ONLY* */
  28.  ULONG               ss_Status; /* Serial line status     *READ ONLY* */
  29.  ULONG               ss_Unread; /* Unread characters      *READ ONLY* */
  30. };
  31.  
  32. /* serio TagItems */
  33. #define SIO_CtlChar     (TAG_USER+ 1) /* ULONG */
  34. #define SIO_RBufLen     (TAG_USER+ 2) /* ULONG */
  35. #define SIO_ExtFlags    (TAG_USER+ 3) /* ULONG */
  36. #define SIO_Baud        (TAG_USER+ 4) /* ULONG */
  37. #define SIO_BrkTime     (TAG_USER+ 5) /* ULONG */
  38. #define SIO_TermArray   (TAG_USER+ 6) /* struct IOTArray * */
  39. #define SIO_ReadLen     (TAG_USER+ 7) /* UBYTE */
  40. #define SIO_WriteLen    (TAG_USER+ 8) /* UBYTE */
  41. #define SIO_StopBits    (TAG_USER+ 9) /* UBYTE */
  42. #define SIO_SerFlags    (TAG_USER+10) /* ULONG */
  43.  
  44. /* Flags returned by CheckSerial() */
  45. #define SIOB_ReadReady  0
  46. #define SIOF_ReadReady  (1L<<SIOB_ReadReady)
  47. #define SIOB_WriteReady 1
  48. #define SIOF_WriteReady (1L<<SIOB_WriteReady)
  49.  
  50. /* Function prototypes */
  51. struct SerialStream *CreateSerialStream(char *DeviceName, ULONG Unit,
  52.                                         ULONG SerFlags);
  53. void DeleteSerialStream(struct SerialStream *stream);
  54. BOOL SetSerialParamsTagList(struct SerialStream *stream,
  55.                             struct TagItem *TagArray);
  56. BOOL SetSerialParamsTags(struct SerialStream *stream, Tag Tag1, ...);
  57. ULONG ReadSerialSynch(struct SerialStream *stream, void *buf, ULONG buflen);
  58. void ReadSerialASynchStart(struct SerialStream *stream, void *buf,
  59.                            ULONG buflen);
  60. ULONG ReadSerialASynchEnd(struct SerialStream *stream);
  61. ULONG WriteSerialSynch(struct SerialStream *stream, void *buf, ULONG buflen);
  62. void WriteSerialASynchStart(struct SerialStream *stream, void *buf,
  63.                            ULONG buflen);
  64. ULONG WriteSerialASynchEnd(struct SerialStream *stream);
  65. BOOL QuerySerial(struct SerialStream *stream);
  66. BOOL ClearSerial(struct SerialStream *stream);
  67. void RemoveIORequest(struct IORequest *ior);
  68.